package br.com.unirio.formula1.modelo;

/**
 * Classe que representa um piloto.
 * E composto por Id, Nome, Sobrenome e sua Equipe ({@link Equipe}).
 * 
 * @author Victor
 * 
 */
public class Piloto
{

    private int id;
    private String primeiroNome;
    private String sobrenome;
    private Equipe equipe;

    public Piloto()
    {

    }

    @Override
    public int hashCode()
    {
	final int prime = 31;
	int result = 1;
	result = prime * result + ((equipe == null) ? 0 : equipe.hashCode());
	result = prime * result + id;
	result = prime * result + ((primeiroNome == null) ? 0 : primeiroNome.hashCode());
	result = prime * result + ((sobrenome == null) ? 0 : sobrenome.hashCode());
	return result;
    }

    @Override
    public boolean equals(Object obj)
    {
	// verificacoes basicas
	if (obj == null)
	    return false;
	if (this.getClass() != obj.getClass())
	    return false;
	// comparacao entre id
	Piloto other = (Piloto) obj;
	if (this.id != other.getId())
	    return false;
	return true;
    }

    public void setId(int id)
    {
	this.id = id;
    }

    public void setEquipe(Equipe equipe)
    {
	this.equipe = equipe;
    }

    public String getSobrenome()
    {
	return sobrenome;
    }

    public void setSobrenome(String unome)
    {
	this.sobrenome = unome;
    }

    public Piloto(int id, String nome, String unome, Equipe equipe)
    {
	this.id = id;
	this.primeiroNome = nome;
	this.equipe = equipe;
	this.sobrenome = unome;
    }

    public Equipe getEquipe()
    {
	return equipe;
    }

    public int getId()
    {
	return id;
    }

    public String getNome()
    {
	return primeiroNome;
    }

    public void setNome(String nome)
    {
	this.primeiroNome = nome;
    }

    @Override
    public String toString()
    {
	return primeiroNome + " " + sobrenome;
    }

}
